package co.yixiang.yshop.module.product.dal.dataobject.productcoupon;

import co.yixiang.yshop.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商品优惠券 DO
 *
 * @author moxiangrong
 */
@TableName("yshop_store_product_coupon")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductCouponDO extends BaseDO {

    /**
     * 优惠券id
     */
    @TableId
    private Long id;
    /**
     * 优惠券名称
     */
    private String couponName;
    /**
     * 优惠券面值
     */
    private BigDecimal couponValue;
    /**
     * 优惠券类型：1、满减券，2、折扣券
     */
    private Integer couponType;
    /**
     * 满减门槛
     */
    private BigDecimal threshold;
    /**
     * 折扣
     */
    private BigDecimal discount;
    /**
     * 优惠券范围：1、所有商品，2、选中商品
     */
    private Integer couponScope;
    /**
     * 范围值
     */
    private String scopeValues;
    /**
     * 优惠券剩余数量
     */
    private Long number;
    /**
     * 优惠券总数
     */
    private Long totalNumber;
    /**
     * 领取限制类型 1 无限制 2限制次数
     */
    private Integer receiveType;
    /**
     * 限制每人领取数量
     */
    private Long limitNumber;
    /**
     * 过期类型：1、按时间，2、按天数，3：永久
     */
    private Integer expirationType;
    /**
     * 生效时间
     */
    private LocalDateTime takingEffectTime;
    /**
     * 过期时间
     */
    private LocalDateTime expirationTime;
    /**
     * 过期天数
     */
    private Long expirationDay;
    /**
     * 备注
     */
    private String remark;
    /**
     * 兑换类型：0：页面领取，1：通用码，2：一券一码
     */
    private Integer getType;
}
